package org.jeecg.modules.util;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public class JaccardSimilarity {
    public static double jaccardSimilarity(String text1, String text2) {
        Set<String> words1 = new HashSet<>(Arrays.asList(text1.split("\\s+")));
        Set<String> words2 = new HashSet<>(Arrays.asList(text2.split("\\s+")));

        Set<String> intersection = new HashSet<>(words1);
        intersection.retainAll(words2);

        Set<String> union = new HashSet<>(words1);
        union.addAll(words2);

        return intersection.size() / (double) union.size();
    }

    public static void main(String[] args) {
        String s1 = " 1. 目标与重点难点\n" +
                "单元目标：\n" +
                "- 运动能力：掌握传接运射基础技术及组合动作（脚内外侧变向突破、绕杆射门），发展灵敏性、位移速度、肌肉力量；能说出3-4个足球术语。\n" +
                "- 健康行为：培养运动前后热身/放松习惯，关注情绪管理，适应团队竞争环境。\n" +
                "- 体育品德：强化团队协作、规则意识，培养“胜不骄败不馁”的竞技精神。\n" +
                "课时目标（第7课时）：\n" +
                "- 重点：脚内侧与脚背正面运球组合技术衔接，突破后射门意识培养。\n" +
                "- 难点：动作连贯性、实战场景应用（如抬头观察、方向选择）。";
        String s2 = " 1. 教学目标与重难点\n" +
                "核心目标：\n" +
                "- 技能目标： 使85%的学生初步掌握安全快速通过障碍跑的基本动作要领（三个障碍）。\n" +
                "- 体能目标： 发展学生核心力量、协调性及灵敏性。\n" +
                "- 品德目标： 培养正确对待胜负的心态、团队协作精神及红色教育（长征精神）。\n" +
                "重点与难点：\n" +
                "- 重点： 通过障碍的方法正确，姿势合理（如跨越、钻爬、跳跃的规范动作）。\n" +
                "- 难点： 障碍与跑的快速衔接（动作连贯性与速度控制）。";
        double similarity = jaccardSimilarity(s1, s2);
        System.out.println("Jaccard相似度: " + similarity);
    }
}
